package com.tiemei.demo.unittest.junit;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.Collection;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * 验证：Annotations执行顺序
 * @author tiemei.jdk
 * @date   2012-10-11
 */
public class AnnotationsOrder {
	
	    private Collection collection;
	 
	    @BeforeClass
	    public static void oneTimeSetUp() {
	        // one-time initialization code   
	    	System.out.println("@BeforeClass - oneTimeSetUp");
	    }
	 
	    @AfterClass
	    public static void oneTimeTearDown() {
	        // one-time cleanup code
	    	System.out.println("@AfterClass - oneTimeTearDown");
	    }
	 
	    @Before
	    public void setUp() {
	        collection = new ArrayList();
	        System.out.println("@Before - setUp");
	    }
	 
	    @After
	    public void tearDown() {
	        collection.clear();
	        System.out.println("@After - tearDown");
	    }
	 
	    @Test
	    public void testEmptyCollection() {
	        assertTrue(collection.isEmpty());
	        System.out.println("@Test - testEmptyCollection");
	    }
	 
	    @Test
	    public void testOneItemCollection() {
	        collection.add("itemA");
	        assertEquals(1, collection.size());
	        System.out.println("@Test - testOneItemCollection");
	    }
	
	/**
	 * output:
@BeforeClass - oneTimeSetUp
@Before - setUp
@Test - testEmptyCollection
@After - tearDown
@Before - setUp
@Test - testOneItemCollection
@After - tearDown
@AfterClass - oneTimeTearDown
	 */
}


